package protectora.DAO;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

import protectora.Provincia;

public class ProvinciaDAOImpl implements ProvinciaDAO {

	public List<Provincia> getProvincias() {
		List<Provincia> resul = new LinkedList<Provincia>();
		Connection conn = ConnectionManager.getInstance().checkOut();
		
		ResultSet rs = null;
		PreparedStatement st = null;
		
		
		try {
			String sql = "Select * from codigopostal order by Poblacion;";
			st= conn.prepareStatement(sql);
			rs = st.executeQuery();
			while(rs.next()){
				Integer cp = rs.getInt("CP");
				String provi = rs.getString("Provincia");
				String localidad = rs.getString("Poblacion");
				Provincia provincia = new Provincia(cp,provi,localidad);
				resul.add(provincia);
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try{
			rs.close();
			st.close();
			conn.close();
			}
			catch (Exception e) {
				System.out.println("Error cerrando conexion");
			}
		}
		
		
		return resul;
	}

	public Provincia getProvincia(String codigoPostal) {
		Provincia resul = null;
		Connection conn = ConnectionManager.getInstance().checkOut();
		
		ResultSet rs = null;
		PreparedStatement st = null;
		
		
		try {
			String sql = "select * from codigopostal cp where cp = "+ codigoPostal +";";
			st= conn.prepareStatement(sql);
			rs = st.executeQuery();
			while(rs.next()){
				Integer cp = rs.getInt("CP");
				String provi = rs.getString("Provincia");
				String localidad = rs.getString("Poblacion");
				resul = new Provincia(cp,provi,localidad);
				
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try{
			rs.close();
			st.close();
			conn.close();
			}
			catch (Exception e) {
				System.out.println("Error cerrando conexion");
			}
		}
		
		
		return resul;
	}

}
